home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 10 / FM Towns Free Software Collection 10.iso / ms_dos / tool / fapxtool / src / txl / txlmain.c < prev    next >
C/C++ Source or Header  |  1995-02-14  |  1KB  |  74 lines

  1. /***************
  2. *
  3. * g:\exe\txl\src\txlmain.c
  4. */
  5. #define MAIN 1
  6. #include "txl.h"
  7. #define VERSION "V1.1R3"
  8.  
  9.  
  10. #include <setjmp.h>
  11.  
  12. jmp_buf exitjmp;
  13.  
  14.  
  15. void Exit(int val)
  16. {
  17.     free(line1);
  18.     if (cfwork != NULL) {
  19.         free(cfwork);
  20.     }
  21.     if (fpmes != NULL) {
  22.         fclose(fpmes);
  23.     }
  24.     longjmp(exitjmp, val+1);
  25. }
  26.  
  27. void errexit(char *errmes)
  28. {
  29.     if (fpmes != NULL) {
  30.         fprintf(fpmes, "\nTXL:(Error)%s\n", errmes);
  31.     }
  32.     Exit(1);
  33. }
  34.  
  35. void init(char *name)
  36. {
  37.     char *path;
  38.  
  39.     path = ((strlen(name) > 33) ? jstrrchr(name, '\\')+1 : name);
  40.     fprintf(stderr,"%s " VERSION " copyright (C) 1994-1995  T.Nakatani\n", path);
  41.  
  42.     log_idstr[0]  = NUL;
  43.     log_resp[0]   = NUL;
  44.     log_handle[0] = NUL;
  45.     log_fname[0]  = NUL;
  46.     log_pname[0]  = NUL;
  47.     log_pname[8]  = NUL;
  48.     inputfile = NULL;
  49.     outputfile = NULL;
  50.     line1 = calloc(240, 1);
  51.     line2 = line1 + 80;
  52.     line3 = line2 + 80;
  53.     fpmes = NULL;
  54.     cfwork = NULL;
  55.  
  56.     if (line1 == NULL) {
  57.         errexit("out of memory(init)");
  58.     }
  59.  
  60. }
  61.  
  62. int main(int argc, char *argv[])
  63. {
  64.     volatile int ret;
  65.     ret = setjmp(exitjmp);
  66.     if (ret == 0) {
  67.         init(argv[0]);
  68.         cfexpand(argc - 1, &(argv[1]));
  69.     } else {
  70.         ret--;
  71.     }
  72.     return ret;
  73. }
  74.